/**
 * Copyleft (C) 2023-2024 maminjie <canpool@163.com>
 * SPDX-License-Identifier: BSD-3-Clause
 **/
#ifndef QXMATERIALSTYLE_H
#define QXMATERIALSTYLE_H

#include "qxmaterial_global.h"
#include <QtWidgets/QCommonStyle>

QX_MATERIAL_BEGIN_NAMESPACE

class MatTheme;
class MatStylePrivate;

class QX_MATERIAL_EXPORT MatStyle : public QCommonStyle
{
    Q_OBJECT
public:
    inline static MatStyle &instance();

    void setTheme(MatTheme *theme);
    QColor themeColor(const QString &key) const;
private:
    MatStyle();
    ~MatStyle();
private:
    QX_DECLARE_PRIVATE(MatStyle)
};

inline MatStyle &MatStyle::instance()
{
    static MatStyle instance;
    return instance;
}

QX_MATERIAL_END_NAMESPACE

#endif   // QXMATERIALSTYLE_H
